<html> 
<head>
  <title>AspectJ Documentation and Resources</title>
</head>
<body> 

<a name="top"></a>
<h1>AspectJ Documentation and Resources</h1>
<p/> 
    AspectJ <sup><small>tm</small></sup>
    is a seamless aspect-oriented extension to 
    Java<sup><small>tm</small></sup>.
    The compiler and development tools are available under 
    an open-source license, require Java 1.3 to run, and produce
    code that runs in JDK 1.1 and later VM's. 
    For the latest materials, see
    <a href="http://eclipse.org/aspectj">http://eclipse.org/aspectj</a>.
    Not all of these materials have been updated for AspectJ 5.
<p/>

<table>
    <tr><td><u>Section</u></td><td><u>Contents</u></td></tr>
    <tr><td><a href="#documentation">docs</a></td><td>
       <a href="faq.html">FAQ</a>, 
       <a href="quick5.pdf">Quick Reference (AspectJ 5)</a>,
       <a href="quick.pdf">Quick Reference (1.2.1)</a>, 
       <a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>,
       <a href="progguide/index.html">programming</a>, 
       <a href="devguide/index.html">development</a> and 
       <a href="pdguide/index.html">problem diagnosis</a> guides, 
       <a href="runtime-api/index.html">API</a> and
       <a href="examples/">example code</a>.
	   </td></tr>
    <tr><td><a href="#distributions">distributions</a></td><td>  
        <a href="http://eclipse.org/aspectj">AspectJ</a>;
        development environment support for 
        <a href="http://eclipse.org/ajdt">Eclipse</a> 
        and
        <a href="https://jdeveloperaop.dev.java.net/">JDeveloper</a>. 
        </td></tr>
    <tr><td><a href="#resources">resources</a></td><td>
       <a href="http://aosd.net">aosd.net</a>;
       <a href="http://eclipse.org/aspectj">AspectJ project</a>
       the bug <a href="http://bugs.eclipse.org/bugs">db</a>,
       and mailing lists for 
       <a href="mailto:aspectj-users@eclipse.org">users</a> and
       <a href="mailto:aspectj-dev@eclipse.org">developers</a>.
	   </td></tr>
    <tr><td><a href="#paths">paths</a> </td><td>for those new to AspectJ
		</td></tr>
</table>
<p/>

<a name="documentation"></a>
<h3>AspectJ documentation</h3>
<table border="1">
<tr> <th>Documentation</th><th>Description</th> 
     </tr>


<tr> <td><a href="quick5.pdf"> AspectJ 5 Quick Reference</a>
     </td>
     <td>This is a four-page quick reference for the AspectJ 5 language. 
     </td> </tr>

<tr> <td><a href="quick.pdf"> AspectJ Quick Reference</a>
     </td>
     <td>This is a two-page quick reference for the AspectJ language. 
     </td> </tr>

<tr> <td><a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>
         (printable <a href="adk15notebook/printable.html">html</a>)
     </td>
     <td>This describes the changes to the AspectJ language and tools introduced
     in the AspectJ 5 Development Kit. These changes are additive, and are not yet 
     reflected in the programming guide or quick reference.</td>
     </tr>

<tr> <td><a href="progguide/index.html">Programming Guide</a>
         (printable <a href="progguide/printable.html">html</a>)
     </td>
     <td>This introduces AOP and the AspectJ language.  
      <a href="progguide/starting.html">Getting Started</a>
     describes basic semantics, and shows development- and production-time applications.
     <a href="progguide/language.html">The AspectJ Language</a>
     describes join points, pointcuts, advice, and introduction, all features new to AOP. 
     <a href="progguide/examples.html">Examples</a> walks you through the 
     examples included with the documentation, and there are two short
     chapters on useful <a href="progguide/idioms.html">Idioms</a> and a
     few <a href="progguide/pitfalls.html">Pitfalls</a>
     The appendices have reference information:
     the <a href="progguide/quick.html">Quick Reference</a>
     summarizes AspectJ syntax,
     the <a href="progguide/semantics.html">Language Semantics</a>
     best describes AspectJ usage, and 
     <a href="progguide/implementation.html">Implementation Notes</a>
     describes how
     the current version is limited to code the compiler controls.</td>
     </tr>

<tr> <td><a href="devguide/index.html">Development Environment Guide</a>
<br/>
         
         (printable <a href="devguide/printable.html">html</a>)
     </td>
     <td>This is a guide to  
     <a href="devguide/ajc-ref.html">ajc</a>, the command-line compiler;
     <a href="devguide/ajbrowser.html">ajbrowser</a>, the stand-alone
     GUI for compiling and viewing crosscutting structure; 
     and the <a href="devguide/antTasks.html">Ant tasks</a>
     for building AspectJ programs.
     </td>
     </tr>

<tr> <td><a href="pdguide/index.html">Problem Diagnosis Guide</a>
<br/>
         
         (printable <a href="pdguide/printable.html">html</a>)
     </td>
     <td>This has a guide to  
     the various features available such as messages and trace to help you both solve problems
     with you own programs and report bugs to the AspectJ team.
     </td>
     </tr>

<tr> <td><a href="runtime-api/index.html">AspectJ API</a>
     </td>
     <td>API documentation for AspectJ runtime classes. <tt>JoinPoint</tt>
         shows the state automatically available at each join point.
		 See also the <a href="weaver-api/index.html">Weaver API</a>
     </td> </tr>

<tr> <td><a href="faq.html"> FAQ</a>
     </td>
     <td>Frequently-asked questions about the AspectJ language, tools, and project.
     </td> </tr>

<tr> <td>README's
     </td>
     <td>Changes and porting guide for AspectJ 
        <a href="README-173.html">1.7.3</a>,
        <a href="README-172.html">1.7.2</a>,
        <a href="README-171.html">1.7.1</a>,
        <a href="README-170.html">1.7.0</a>,
        <a href="README-1612.html">1.6.12</a>,
        <a href="README-1611.html">1.6.11</a>,
        <a href="README-1610.html">1.6.10</a>,
        <a href="README-169.html">1.6.9</a>,
        <a href="README-168.html">1.6.8</a>,
        <a href="README-167.html">1.6.7</a>,
        <a href="README-166.html">1.6.6</a>,
        <a href="README-165.html">1.6.5</a>,
        <a href="README-164.html">1.6.4</a>,
        <a href="README-163.html">1.6.3</a>,
        <a href="README-162.html">1.6.2</a>,
        <a href="README-161.html">1.6.1</a>,
        <a href="README-160.html">1.6.0</a>,
        <a href="README-154.html">1.5.4</a>,
        <a href="README-153.html">1.5.3</a>,
        <a href="README-152.html">1.5.2</a>,
        <a href="README-151.html">1.5.1</a>,
        <a href="README-150.html">1.5.0</a>,
		<a href="README-121.html">1.2.1</a>,
		<a href="README-12.html">1.2.0</a>,
		<a href="README-11.html">1.1</a>, and
		<a href="porting.html">1.0</a>.
     </td> </tr>


<tr> <td><a href="changes.html">Changes</a>
     </td>
     <td>Changes between the latest releases.
     </td> </tr>

<tr> <td><a href="examples/">Examples</a>
     </td>
     <td>AspectJ code to demonstrate some language features and implement
     JavaBean properties, the Observer pattern, a tracing library, 
     and a game application where aspects handle display updating.
     </td> </tr>

</table>

<a name="distributions"></a>
<h3>AspectJ distributions</h3>
<table border="1">
<tr> <th>Distributions</th><th>Description</th></tr>
<tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a>
     </td>
     <td>The AspectJ distribution contains binaries for the
         compiler, structure browser, and Ant taskdefs,
         as well as the documentation and examples.
         </td>
     </tr>
<tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a> source code
     </td>
     <td>Source code for AspectJ is available 
         under the open-source 
         <a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License v1.0</a>
         license from the CVS
         repositories for the AspectJ project.  See the
         <a href="faq.html#q:buildingsource">FAQ entry</a>.
         </td>
     </tr>

<tr> <td><a href="http://eclipse.org/ajdt">AspectJ for Eclipse</a>
     </td>
     <td>AspectJ Development Environment support for
         Eclipse is available under Eclipse Public License v1.0
         from the eclipse.org project site
         <a href="http://eclipse.org/ajdt">
                  http://eclipse.org/ajdt</a>
         </td>
     </tr>

<tr> <td><a href="https://jdeveloperaop.dev.java.net/">
          Support for the JDeveloper IDE</a>
     </td>
     <td>Support for programming in AspectJ using the JDeveloper IDE
         is available under the Apache Software License
         from the java.net project site
         <a href="https://jdeveloperaop.dev.java.net/">
                  https://jdeveloperaop.dev.java.net/</a>
         </td>
     </tr>

</table>

<a name="resources"></a>
<h3>Other AspectJ resources</h3>
<table border="1">
<tr> <th>Resources</th><th>Description</th> 
     </tr>
<tr> <td>Mail lists 
         </td>
     <td>
         AspectJ users discuss tips and
         best practices for writing AspectJ programs on
         <a href="mailto:aspectj-users@eclipse.org">
           aspectj-users@eclipse.org</a>.
         AspectJ developers discuss issues with developing
         the AspectJ tools on
         <a href="mailto:aspectj-dev@eclipse.org">
          aspectj-dev@eclipse.org</a>.		  
         To get occasional emails about AspectJ releases
         and relevant events, subscribe to 
         <tt>aspectj-announce@eclipse.org</tt>.
         To view list archives or subscribe to the list, go to 
         <a href="http://eclipse.org/aspectj">
                 the AspectJ home page</a>.
		 To find archived emails, use the Eclipse site 
		 <a href="http://www.eclipse.org/search/search.cgi">search page</a>.
	</td></tr>
<tr> <td><a href="http://bugs.eclipse.org/bugs">Bug database</a>
     </td>
     <td>Use the Eclipse project's Bugzilla database
     to view and submit bugs against the AspectJ product components
     <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Compiler">
         Compiler</a> (for the AspectJ compiler, ajc)
     <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=IDE">
         IDE</a> (for AJBrowser and AJDE bugs),
     <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Ant">
         Ant</a> (for the Ant tasks),
     and
     <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Docs">
         Docs</a> (for the documentation).
     Bugs all users should know about are
     <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;keywords=info">
      flagged with the "info" keyword</a>.
     See the 
     <a href="faq.html#q:ajcbugs">
     	FAQ entry</a> for instructions on submitting compiler bugs.     
     </td> </tr>

<tr> <td> <a href="http://aosd.net">http://aosd.net</a> - the AOSD web site
     </td>
     <td>This site has discussion and announcements related to
         aspect-oriented software development (AOSD) in general.  
         Use <a href="mailto:announce@aosd.net">announce@aosd.net</a>
         to get and publish notices about AOSD
         workshops, conferences, and technology releases.
         Use <a href="mailto:discuss@aosd.net">discuss@aosd.net</a>
         for general AOSD discussions.
     </td> </tr>
</table>

<p/>
<a name="paths"></a>
<h3>Suggested paths for those new to AspectJ</h3>
<p/>
   To learn the AspectJ language, read the 
    <a href="progguide/index.html">Programming Guide</a>,
    keeping the <a href="progguide/semantics.html">Semantics appendix</a>
    nearby as the best reference for AspectJ usage.
    Focus initially on the join point model and
    pointcuts, concepts AOP adds to OOP.
    To read about how the <a href="examples/">examples</a> work, 
    see the <a href="progguide/examples.html">Examples </a> section
    in the <a href="progguide/index.html">Programming Guide</a>.
    View and navigate the crosscutting structure using 
	<a href="http://eclipse.org/ajdt">AJDT</a>; if you can't use Eclipse, try
    the <code>ajbrowser</code> structure viewer, as described in
    the <a href="devguide/ajbrowser.html">AspectJ Browser</a> section of
    the <a href="devguide/index.html">Development Environment Guide</a>.
<p/>
    To start using AspectJ with your own code, 
    modify the example aspects to apply to your classes.
    As you learn,
    use the compiler's <code>-Xlint</code> flags to catch some common 
    mistakes.  (Understand that the 
    <a href="progguide/implementation.html">current implementation</a>
    is limited to code the compiler controls.)
<p>
   To plan how to adopt AspectJ into a project, read the 
    <a href="progguide/index.html">Programming Guide</a>
   on development- and production-time aspects 
   and the <a href="faq.html">FAQ</a> entries for 
   <a href="faq.html#q:startUsingAJ">How should I start using AspectJ?</a>,
   <a href="faq.html#adoption">Deciding to adopt AspectJ</a>,
   the Development tools sections
   (<a href="faq.html#q:integrateWithDevTools">one</a>,
    <a href="faq.html#devtools">two</a>, 
    <a href="faq.html#ltw">Load-time weaving</a> 
    ), and
   <a href="faq.html#q:opensource">AspectJ as open-source</a>.
</p>
<p>
Enjoy the language!
</p>
<p>
The AspectJ Team
</p>

<hr/>
<small>
<a href="#top">Top</a>
</small>
</body> </html>
